{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "induced-orleans",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "from sklearn.linear_model import LinearRegression \n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from sklearn.metrics import mean_squared_error,r2_score\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "pediatric-tower",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>speed</th>\n",
       "      <th>price</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>9</td>\n",
       "      <td>22.97</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>9</td>\n",
       "      <td>22.97</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>9</td>\n",
       "      <td>25.23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>9</td>\n",
       "      <td>25.23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>9</td>\n",
       "      <td>26.31</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  speed  price\n",
       "0     9  22.97\n",
       "1     9  22.97\n",
       "2     9  25.23\n",
       "3     9  25.23\n",
       "4     9  26.31"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 读取数据\n",
    "data = pd.read_csv(\"./data/finalPrice_100kmAcceleration.csv\")\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "adequate-cannon",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(14839, 2)"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "confirmed-logistics",
   "metadata": {},
   "outputs": [],
   "source": [
    "data['speed'] = data['speed'].str.replace(\"-\",\"0\").astype('float64')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "dimensional-inclusion",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 14839 entries, 0 to 14838\n",
      "Data columns (total 2 columns):\n",
      " #   Column  Non-Null Count  Dtype  \n",
      "---  ------  --------------  -----  \n",
      " 0   speed   14839 non-null  float64\n",
      " 1   price   14839 non-null  float64\n",
      "dtypes: float64(2)\n",
      "memory usage: 232.0 KB\n"
     ]
    }
   ],
   "source": [
    "data.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "intermediate-marble",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#绘制散点图\n",
    "plt.scatter(data.speed,data.price,color = 'b',label = \"Exam Data\")\n",
    " \n",
    "#添加图的标签（x轴，y轴）\n",
    "plt.xlabel(\"speed\")\n",
    "plt.ylabel(\"price\")\n",
    "#显示图像\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "structural-silly",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "原始数据特征: (14839,) ,训练数据特征: (11871,) ,测试数据特征: (2968,)\n",
      "原始数据标签: (14839,) ,训练数据标签: (11871,) ,测试数据标签: (2968,)\n"
     ]
    }
   ],
   "source": [
    "exam_X = data['speed']\n",
    "exam_Y = data['price']\n",
    "#将原数据集拆分训练集和测试集\n",
    "X_train,X_test,Y_train,Y_test = train_test_split(exam_X,exam_Y,train_size=.8)\n",
    "#X_train为训练数据标签,X_test为测试数据标签,exam_X为样本特征,exam_y为样本标签，train_size 训练数据占比\n",
    " \n",
    "print(\"原始数据特征:\",exam_X.shape,\n",
    "      \",训练数据特征:\",X_train.shape,\n",
    "      \",测试数据特征:\",X_test.shape)\n",
    " \n",
    "print(\"原始数据标签:\",exam_Y.shape,\n",
    "      \",训练数据标签:\",Y_train.shape,\n",
    "      \",测试数据标签:\",Y_test.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "literary-biology",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LinearRegression()"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model = LinearRegression()\n",
    "\n",
    "X_train = X_train.values.reshape(-1,1)\n",
    "X_test = X_test.values.reshape(-1,1)\n",
    " \n",
    "model.fit(X_train,Y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "dominican-nothing",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "最佳拟合线:截距 21.188501185450704 ,回归系数： [1.68548043]\n"
     ]
    }
   ],
   "source": [
    "\n",
    "a  = model.intercept_#截距\n",
    " \n",
    "b = model.coef_#回归系数\n",
    " \n",
    "print(\"最佳拟合线:截距\",a,\",回归系数：\",b)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "direct-treaty",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYsAAAEJCAYAAABlmAtYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAAAlKklEQVR4nO3deZhddZ3n8fcnRRZLMIEi+tAJqYpOQMKWkIIRlG6iYiLQQtsuYKEZXGJYbLQdBBq6WWbyjI7abG2ChSBgCsRJ6whtFGhHxG5aoYIxhLAkQBIS0lAECEsIWeo7f5xzk1uVu9Ryt6r7eT3Pee4933PuuT8OqfO9v+X8jiICMzOzQkZUuwBmZlb7nCzMzKwoJwszMyvKycLMzIpysjAzs6KcLMzMrKiyJQtJN0l6QdKKrNgdkpalyxpJy9J4i6Q3s7Zdn/WZGZIekbRa0rWSVK4ym5lZbnuV8dg3A/8E3JoJRMSnM+8lfRfYnLX/UxExLcdxFgJfAv4ALAFmA78sfXHNzCyfsiWLiLhfUkuubWnt4FPABwsdQ9IBwDsi4vfp+q3AafQhWey///7R0pLz683MLIelS5e+GBHjc20rZ82ikOOB5yNiVVZssqQ/Aq8Cl0bE74AJwPqsfdansZwkzQXmAkyaNInOzs6SF9zMbLiStDbftmp1cJ8B3J61vhGYFBHTgb8FbpP0jv4eNCLaI6I1IlrHj8+ZHM3MbAAqXrOQtBfwcWBGJhYRbwFvpe+XSnoKOAjYAEzM+vjENGZmZhVUjZrFh4HHI2JX85Kk8ZIa0vfvBqYAT0fERuBVSe9L+zk+B/y8CmU2M6trZatZSLodOAHYX9J64LKIuBE4nZ5NUAB/DlwpaTvQDcyLiJfSbeeQjKx6G0nH9oBHQm3fvp3169ezdevWgR6ibo0ZM4aJEycycuTIahfFzKpAw3WK8tbW1ujdwf3MM8+wzz770NTUhG/X6LuIYNOmTbz22mtMnjy52sUxszKRtDQiWnNtq9ZoqKrYunUrLS0t1UkUmzbBhg2wbRuMGgUTJkBTU+XLMQCSaGpqoqurq9pFMbMqqatkAVQvUaxdC93dyfq2bck6DKmEYWb1y3NDVcKGDbsTRUZ3dxI3MxsCnCwqYds2ANY89xyHffrTe8T767777uOBBx7Iue3mm2/mvPPOA+D666/n1ltvzbmfmVl/1F0zVFWMGpU7MYwaNaDD3Xfffey9994cd9xxBfebN2/egI5vZtabaxaVMGECjEhO9Y6dO2m79FIO+eQn+cSll7JlyxYAli5dyl/8xV8wY8YMZs2axcaNGwG49tprmTp1KkcccQSnn346a9as4frrr+eqq65i2rRp/O53v8v7tZdffjnf+c53ADjhhBO48MILOeaYYzjooIN2fW7nzp1ccMEFHH300RxxxBF8//vfL+eZMLMhqm6ThaSyLXtoaoLmZhg5kifWruWcM87gsc5O3rH//ixYsIDt27fzla98hcWLF7N06VI+//nPc8kllwDwzW9+kz/+8Y8sX76c66+/npaWFubNm8fXvvY1li1bxvHHH9/n/+YdO3bw4IMPcvXVV3PFFVcAcOONNzJ27FgeeughHnroIW644QaeeeaZkpxjMxs+3AxVKU1NcMghHHjggbx/zhwAzjzzTK699lpmz57NihUrOPHEE4Hk1/4BBxwAwBFHHEFbWxunnXYap5122qCK8PGPfxyAGTNmsGbNGgDuueceli9fzuLFiwHYvHkzq1at8v0UZtaDk0WF9a55SCIiOPTQQ/mP//iPPfb/xS9+wf33389dd93F/PnzeeSRRwb83aNHjwagoaGBHTt2AMkNd9dddx2zZs0a8HHNbPir22aoiCjbUsi6det2JYXbbruND3zgAxx88MF0dXXtim/fvp1HH32U7u5unn32WWbOnMm3vvUtNm/ezOuvv84+++zDa6+9VpLzMGvWLBYuXMj27dsBePLJJ3njjTdKcmwzGz7qNllUy8EHH8z3vvc9DjnkEF5++WXOPvtsRo0axeLFi7nwwgs58sgjmTZtGg888AA7d+7kzDPP5PDDD2f69On8zd/8DePGjeMv//Iv+dnPfla0g7svvvjFLzJ16lSOOuooDjvsML785S/vqnWYmWXU1dxQjz32GIccckiVSjT0+fyZDW+F5oZyzcLMzIpysjAzs6KcLMzMrCgnCzMzK8rJwszMinKyMDOzopwsKuiVV15hwYIFA/781VdfvWviwULuu+8+TjnllIL7LFu2jCVLlgy4LGZWX5wsKqhSyaIvnCzMrD+cLArp6ICWlmR68ZaWZH0QLrroIp566immTZvGBRdcAMC3v/3tXdODX3bZZQC88cYbnHzyyRx55JEcdthh3HHHHVx77bU899xzzJw5k5kzZ+5x7F/96le8973v5aijjuKnP/3prviDDz7Isccey/Tp0znuuON44okn2LZtG//wD//AHXfcwbRp07jjjjty7mdmtksZ50e6CXgBWJEVuxzYACxLl5Oytl0MrAaeAGZlxWensdXARX39/hkzZkRvK1eu3COW16JFEY2NEbB7aWxM4gP0zDPPxKGHHrpr/e67744vfelL0d3dHTt37oyTTz45fvvb38bixYvji1/84q79XnnllYiIaG5ujq6urj2O++abb8bEiRPjySefjO7u7vjkJz8ZJ598ckREbN68ObZv3x4REffee298/OMfj4iIH/7wh3HuuefuOka+/bL16/yZ2ZADdEaea2o5Z529GfgnoPdzPa+KiO9kByRNBU4HDgX+DPhXSQelm78HnAisBx6SdGdErCxjuROXXAK9m3y2bEnibW0l+Yp77rmHe+65h+nTpwPw+uuvs2rVKo4//ni+/vWvc+GFF3LKKacUfWbF448/zuTJk5kyZQqQTH3e3t4OJFOOz5kzh1WrViFp14SBvfV1PzOrT2VrhoqI+4GX+rj7qcCPI+KtiHiGpBZxTLqsjoinI2Ib8ON03/Jbt65/8QGICC6++GKWLVvGsmXLWL16NV/4whc46KCDePjhhzn88MO59NJLufLKKwf8HX//93/PzJkzWbFiBXfddRdbt24d1H5mVp+q0WdxnqTlkm6StG8amwA8m7XP+jSWL56TpLmSOiV1dnV1Da6Ukyb1L94HvacWnzVrFjfddBOvv/46ABs2bOCFF17gueeeo7GxkTPPPJMLLriAhx9+OOfnM9773veyZs0annrqKQBuv/32Xds2b97MhAnJKbv55pvzliXffmZmUPlksRB4DzAN2Ah8t5QHj4j2iGiNiNbx48cP7mDz50NjY89YY2MSH6Cmpibe//73c9hhh3HBBRfwkY98hM985jMce+yxHH744XziE5/gtdde45FHHuGYY45h2rRpXHHFFVx66aUAzJ07l9mzZ+/RwT1mzBja29s5+eSTOeqoo3jnO9+5a9s3vvENLr74YqZPn95j6vGZM2eycuXKXR3c+fYzM4MyT1EuqQX4l4g4rNA2SRcDRMT/SrfdTdIZDnB5RMxK4z32K6QkU5R3dCR9FOvWJTWK+fNL1l8xFHmKcrPhrdAU5RV9rKqkAyJiY7r6V8CK9P2dwG2S/pGk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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.012135722977158148\n"
     ]
    }
   ],
   "source": [
    "#训练数据的预测值\n",
    "y_train_pred = model.predict(X_train)\n",
    "#绘制最佳拟合线：标签用的是训练数据的预测值y_train_pred\n",
    "plt.plot(X_train, y_train_pred, color='black', linewidth=3, label=\"best line\")\n",
    " \n",
    "#测试数据散点图\n",
    "plt.scatter(X_test, Y_test, color='red', label=\"test data\")\n",
    " \n",
    "#添加图标标签\n",
    "plt.legend(loc=2)\n",
    "plt.xlabel(\"price\")\n",
    "plt.ylabel(\"speed\")\n",
    "#显示图像\n",
    "plt.savefig(\"lines.jpg\")\n",
    "plt.show()\n",
    " \n",
    " \n",
    "score = model.score(X_test,Y_test)\n",
    " \n",
    "print(score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "fresh-effect",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 无相关性"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "descending-messaging",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>price</th>\n",
       "      <th>fuelCost</th>\n",
       "      <th>speed100</th>\n",
       "      <th>horserPower</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>22.97</td>\n",
       "      <td>5.8</td>\n",
       "      <td>9</td>\n",
       "      <td>150</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>22.97</td>\n",
       "      <td>5.8</td>\n",
       "      <td>9</td>\n",
       "      <td>150</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>25.23</td>\n",
       "      <td>5.8</td>\n",
       "      <td>9</td>\n",
       "      <td>150</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>25.23</td>\n",
       "      <td>5.8</td>\n",
       "      <td>9</td>\n",
       "      <td>150</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>26.31</td>\n",
       "      <td>5.8</td>\n",
       "      <td>9</td>\n",
       "      <td>150</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   price fuelCost speed100 horserPower\n",
       "0  22.97      5.8        9         150\n",
       "1  22.97      5.8        9         150\n",
       "2  25.23      5.8        9         150\n",
       "3  25.23      5.8        9         150\n",
       "4  26.31      5.8        9         150"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 读取数据\n",
    "data = pd.read_csv(\"./data/price.csv\")\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "speaking-orientation",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(14839, 4)"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "id": "animal-satellite",
   "metadata": {},
   "outputs": [],
   "source": [
    "data = data.replace(\"-\", np.nan)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "id": "beneficial-nevada",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>price</th>\n",
       "      <th>fuelCost</th>\n",
       "      <th>speed100</th>\n",
       "      <th>horserPower</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>22.97</td>\n",
       "      <td>5.8</td>\n",
       "      <td>9</td>\n",
       "      <td>150</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>22.97</td>\n",
       "      <td>5.8</td>\n",
       "      <td>9</td>\n",
       "      <td>150</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>25.23</td>\n",
       "      <td>5.8</td>\n",
       "      <td>9</td>\n",
       "      <td>150</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>25.23</td>\n",
       "      <td>5.8</td>\n",
       "      <td>9</td>\n",
       "      <td>150</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>26.31</td>\n",
       "      <td>5.8</td>\n",
       "      <td>9</td>\n",
       "      <td>150</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14834</th>\n",
       "      <td>0.00</td>\n",
       "      <td>NaN</td>\n",
       "      <td>10</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14835</th>\n",
       "      <td>0.00</td>\n",
       "      <td>NaN</td>\n",
       "      <td>10</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14836</th>\n",
       "      <td>0.00</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14837</th>\n",
       "      <td>0.00</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14838</th>\n",
       "      <td>39.25</td>\n",
       "      <td>1.8</td>\n",
       "      <td>7.6</td>\n",
       "      <td>136</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>14839 rows × 4 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       price fuelCost speed100 horserPower\n",
       "0      22.97      5.8        9         150\n",
       "1      22.97      5.8        9         150\n",
       "2      25.23      5.8        9         150\n",
       "3      25.23      5.8        9         150\n",
       "4      26.31      5.8        9         150\n",
       "...      ...      ...      ...         ...\n",
       "14834   0.00      NaN       10         NaN\n",
       "14835   0.00      NaN       10         NaN\n",
       "14836   0.00      NaN      NaN         NaN\n",
       "14837   0.00      NaN      NaN         NaN\n",
       "14838  39.25      1.8      7.6         136\n",
       "\n",
       "[14839 rows x 4 columns]"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "id": "pharmaceutical-packet",
   "metadata": {},
   "outputs": [],
   "source": [
    "data = data.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "id": "accurate-cause",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\miniconda\\lib\\site-packages\\ipykernel_launcher.py:1: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame.\n",
      "Try using .loc[row_indexer,col_indexer] = value instead\n",
      "\n",
      "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
      "  \"\"\"Entry point for launching an IPython kernel.\n",
      "d:\\miniconda\\lib\\site-packages\\ipykernel_launcher.py:2: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame.\n",
      "Try using .loc[row_indexer,col_indexer] = value instead\n",
      "\n",
      "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
      "  \n",
      "d:\\miniconda\\lib\\site-packages\\ipykernel_launcher.py:3: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame.\n",
      "Try using .loc[row_indexer,col_indexer] = value instead\n",
      "\n",
      "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
      "  This is separate from the ipykernel package so we can avoid doing imports until\n"
     ]
    }
   ],
   "source": [
    "data['speed100'] = data['speed100'].astype('float')\n",
    "data['fuelCost'] = data['fuelCost'].astype('float')\n",
    "data['horserPower'] = data['horserPower'].astype('float')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "id": "digital-halifax",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 2383 entries, 0 to 14838\n",
      "Data columns (total 4 columns):\n",
      " #   Column       Non-Null Count  Dtype  \n",
      "---  ------       --------------  -----  \n",
      " 0   price        2383 non-null   float64\n",
      " 1   fuelCost     2383 non-null   float64\n",
      " 2   speed100     2383 non-null   float64\n",
      " 3   horserPower  2383 non-null   float64\n",
      "dtypes: float64(4)\n",
      "memory usage: 93.1 KB\n"
     ]
    }
   ],
   "source": [
    "data.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "id": "institutional-italy",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>price</th>\n",
       "      <th>fuelCost</th>\n",
       "      <th>speed100</th>\n",
       "      <th>horserPower</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>2383.000000</td>\n",
       "      <td>2383.000000</td>\n",
       "      <td>2383.000000</td>\n",
       "      <td>2383.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>48.723177</td>\n",
       "      <td>7.138175</td>\n",
       "      <td>9.073101</td>\n",
       "      <td>215.554469</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>76.412698</td>\n",
       "      <td>2.369139</td>\n",
       "      <td>4.377741</td>\n",
       "      <td>105.130561</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>53.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>17.140000</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>7.200000</td>\n",
       "      <td>150.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>28.540000</td>\n",
       "      <td>7.000000</td>\n",
       "      <td>8.600000</td>\n",
       "      <td>190.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>48.290000</td>\n",
       "      <td>8.200000</td>\n",
       "      <td>9.900000</td>\n",
       "      <td>249.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>1027.750000</td>\n",
       "      <td>17.900000</td>\n",
       "      <td>45.000000</td>\n",
       "      <td>780.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             price     fuelCost     speed100  horserPower\n",
       "count  2383.000000  2383.000000  2383.000000  2383.000000\n",
       "mean     48.723177     7.138175     9.073101   215.554469\n",
       "std      76.412698     2.369139     4.377741   105.130561\n",
       "min       0.000000     0.000000     0.000000    53.000000\n",
       "25%      17.140000     6.000000     7.200000   150.000000\n",
       "50%      28.540000     7.000000     8.600000   190.000000\n",
       "75%      48.290000     8.200000     9.900000   249.000000\n",
       "max    1027.750000    17.900000    45.000000   780.000000"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "id": "copyrighted-updating",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "data.boxplot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "id": "novel-darwin",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "原始数据特征: (2383, 3) ,训练数据特征: (1906, 3) ,测试数据特征: (477, 3)\n",
      "原始数据标签: (2383,) ,训练数据标签: (1906,) ,测试数据标签: (477,)\n"
     ]
    }
   ],
   "source": [
    "X_train,X_test,Y_train,Y_test = train_test_split(data.iloc[:,:3],data.price,train_size=.80)\n",
    " \n",
    "print(\"原始数据特征:\",data.iloc[:,:3].shape,\n",
    "      \",训练数据特征:\",X_train.shape,\n",
    "      \",测试数据特征:\",X_test.shape)\n",
    " \n",
    "print(\"原始数据标签:\",data.price.shape,\n",
    "      \",训练数据标签:\",Y_train.shape,\n",
    "      \",测试数据标签:\",Y_test.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "id": "israeli-hindu",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "最佳拟合线:截距 7.105427357601002e-15 ,回归系数： [ 1.00000000e+00  1.19610710e-16 -6.86441987e-18]\n"
     ]
    }
   ],
   "source": [
    "model = LinearRegression()\n",
    " \n",
    "model.fit(X_train,Y_train)\n",
    " \n",
    "a  = model.intercept_#截距\n",
    " \n",
    "b = model.coef_#回归系数\n",
    " \n",
    "print(\"最佳拟合线:截距\",a,\",回归系数：\",b)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "id": "initial-machine",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.0\n",
      "[2.91000000e+01 1.44280000e+02 5.07800000e+01 3.38700000e+01\n",
      " 1.48100000e+01 2.57220000e+02 2.42800000e+01 1.37100000e+01\n",
      " 2.36500000e+01 1.59100000e+01 4.74900000e+01 8.93100000e+01\n",
      " 4.71800000e+01 1.14700000e+01 2.07100000e+01 1.79500000e+01\n",
      " 2.13500000e+01 2.11700000e+01 3.36600000e+01 2.39400000e+01\n",
      " 8.01000000e+00 2.73200000e+01 1.89500000e+01 1.88600000e+01\n",
      " 2.18150000e+02 2.35000000e+01 1.66000000e+01 3.62900000e+01\n",
      " 4.28400000e+01 2.63300000e+01 1.74800000e+01 2.78700000e+01\n",
      " 1.33600000e+01 1.00200000e+01 1.58000000e+01 8.57000000e+00\n",
      " 3.49100000e+01 4.45500000e+01 3.59200000e+01 7.33800000e+01\n",
      " 4.33900000e+01 5.38800000e+01 3.49300000e+01 4.49500000e+01\n",
      " 3.10500000e+01 9.67000000e+00 7.02300000e+01 2.82100000e+01\n",
      " 5.68000000e+01 2.93500000e+01 1.66000000e+01 1.64560000e+02\n",
      " 2.86600000e+01 1.78300000e+01 2.26300000e+01 1.26830000e+02\n",
      " 1.43500000e+01 5.64470000e+02 3.70500000e+01 1.55800000e+01\n",
      " 1.59300000e+01 3.15400000e+01 1.42500000e+01 2.74500000e+01\n",
      " 1.02400000e+01 1.55900000e+01 1.59300000e+01 2.52300000e+01\n",
      " 3.77000000e+01 3.61300000e+01 8.35907384e-15 9.11200000e+01\n",
      " 1.21300000e+01 1.63800000e+01 7.15169210e-15 8.85500000e+01\n",
      " 2.71000000e+01 2.13000000e+01 2.71000000e+01 2.92700000e+01\n",
      " 2.48700000e+01 7.80900000e+01 1.01200000e+01 1.03400000e+01\n",
      " 3.71700000e+01 9.63500000e+01 1.66590000e+02 8.68000000e+00\n",
      " 1.67200000e+01 2.23200000e+01 2.21600000e+01 1.81500000e+01\n",
      " 1.35800000e+01 1.77400000e+01 5.44800000e+01 3.76400000e+01\n",
      " 7.74729144e-15 7.85190376e-15 2.64400000e+01 1.64560000e+02\n",
      " 2.38040000e+02 1.56500000e+01 5.21300000e+01 2.26400000e+01\n",
      " 9.37900000e+01 1.39300000e+01 3.71700000e+01 9.12100000e+01\n",
      " 9.92000000e+00 3.01500000e+01 1.88300000e+01 1.64690000e+02\n",
      " 9.87000000e+01 1.02500000e+01 9.89000000e+00 1.46800000e+01\n",
      " 7.77797468e-15 2.29500000e+01 8.11000000e+00 8.67000000e+00\n",
      " 3.23300000e+01 5.11000000e+00 1.10300000e+01 2.73200000e+01\n",
      " 2.17300000e+01 4.16900000e+01 1.71600000e+01 2.61700000e+01\n",
      " 1.30300000e+01 8.50000000e+00 7.64003669e-15 3.00000000e+01\n",
      " 6.99300000e+01 2.57800000e+01 1.56900000e+01 2.93300000e+01\n",
      " 1.79300000e+01 3.26700000e+01 7.90000000e+00 4.43000000e+00\n",
      " 1.54300000e+01 3.02200000e+01 2.62100000e+01 1.81700000e+01\n",
      " 4.37400000e+01 5.26400000e+01 3.22400000e+01 3.66100000e+01\n",
      " 2.70300000e+01 1.05600000e+01 4.75200000e+01 2.59600000e+01\n",
      " 7.36300000e+01 2.00600000e+01 4.49400000e+01 7.00400000e+01\n",
      " 3.84100000e+01 7.66000000e+00 1.48200000e+01 1.59100000e+01\n",
      " 5.38300000e+01 1.92600000e+01 5.38300000e+01 6.02300000e+01\n",
      " 1.33540000e+02 3.98600000e+01 1.53900000e+01 1.70300000e+01\n",
      " 5.18700000e+01 2.26100000e+01 1.32600000e+01 7.77000000e+00\n",
      " 5.65800000e+01 9.94700000e+01 4.27700000e+01 1.48200000e+01\n",
      " 2.30220000e+02 2.13000000e+01 3.76400000e+01 2.76500000e+01\n",
      " 3.15600000e+01 1.87700000e+01 2.26200000e+01 1.98500000e+01\n",
      " 1.64200000e+01 7.85200000e+01 5.12500000e+01 6.05400000e+01\n",
      " 3.01000000e+01 2.28800000e+01 8.10000000e+00 1.53800000e+01\n",
      " 2.13100000e+01 5.49700000e+01 1.48000000e+01 7.22000000e+00\n",
      " 2.62900000e+01 5.60000000e+01 1.48000000e+01 1.99400000e+01\n",
      " 7.45000000e+00 4.05100000e+01 2.34300000e+01 4.94600000e+01\n",
      " 2.00700000e+01 1.06390000e+02 1.75000000e+01 2.39700000e+01\n",
      " 3.87000000e+01 2.43000000e+01 2.43100000e+01 1.14500000e+01\n",
      " 1.86700000e+01 5.97600000e+01 2.26200000e+01 3.23400000e+01\n",
      " 7.31061824e-15 1.14700000e+01 3.71700000e+01 1.70200000e+01\n",
      " 1.58300000e+01 5.16600000e+01 1.36400000e+01 3.18300000e+01\n",
      " 4.64900000e+01 3.20400000e+01 2.82100000e+01 2.74500000e+01\n",
      " 2.48400000e+01 3.64500000e+01 3.10000000e+01 5.68000000e+01\n",
      " 2.84400000e+01 2.65100000e+01 1.92700000e+01 4.15400000e+01\n",
      " 2.37500000e+01 1.14400000e+01 1.11650000e+02 3.29200000e+01\n",
      " 1.01040000e+02 2.36170000e+02 2.37400000e+01 5.60000000e+01\n",
      " 2.99900000e+01 1.28400000e+01 3.61800000e+01 2.59800000e+01\n",
      " 3.74700000e+01 1.25700000e+01 2.66700000e+01 4.46000000e+01\n",
      " 1.33700000e+01 1.43850000e+02 3.74700000e+01 1.61350000e+02\n",
      " 3.04600000e+01 1.72600000e+01 2.82100000e+01 4.67300000e+01\n",
      " 4.62900000e+01 1.84700000e+01 1.69200000e+01 2.22700000e+01\n",
      " 1.79200000e+01 1.58400000e+01 7.12300000e+01 1.28000000e+01\n",
      " 2.98900000e+01 1.20100000e+01 2.79900000e+01 1.87700000e+01\n",
      " 1.25800000e+01 1.56000000e+01 3.26600000e+01 1.26340000e+02\n",
      " 7.78042889e-15 1.89600000e+01 2.04300000e+01 2.21600000e+01\n",
      " 9.12000000e+00 3.60200000e+01 5.08700000e+01 4.33900000e+01\n",
      " 4.84000000e+01 8.79000000e+00 3.38000000e+01 2.82000000e+01\n",
      " 2.59800000e+01 7.86500000e+01 3.83200000e+01 2.43500000e+01\n",
      " 3.87600000e+01 1.06500000e+01 1.07900000e+01 2.10800000e+01\n",
      " 9.69000000e+01 3.30000000e+01 5.15700000e+01 1.00490000e+02\n",
      " 9.41300000e+01 2.81000000e+01 5.60500000e+01 2.41900000e+01\n",
      " 1.25700000e+01 3.58300000e+01 3.06700000e+01 1.48000000e+01\n",
      " 2.18300000e+01 7.89600000e+01 2.20500000e+01 5.38700000e+01\n",
      " 1.50400000e+01 4.18300000e+01 1.59500000e+01 1.63800000e+01\n",
      " 4.49500000e+01 2.50970000e+02 4.98000000e+01 1.19000000e+01\n",
      " 3.49100000e+01 6.73500000e+01 4.27600000e+01 1.92700000e+01\n",
      " 5.59900000e+01 8.89000000e+00 1.64100000e+01 8.04000000e+01\n",
      " 2.92200000e+01 1.48000000e+01 3.68200000e+01 1.58100000e+01\n",
      " 8.28800000e+01 1.81800000e+01 4.38800000e+01 4.12390000e+02\n",
      " 1.69700000e+01 3.31400000e+01 2.47200000e+01 2.56400000e+01\n",
      " 1.09100000e+02 3.52500000e+01 3.17900000e+01 3.90800000e+01\n",
      " 7.00300000e+01 3.42400000e+01 1.70400000e+01 2.24000000e+01\n",
      " 2.20600000e+01 3.04600000e+01 1.03600000e+01 1.46900000e+01\n",
      " 3.41300000e+01 2.52000000e+01 2.12800000e+01 1.43600000e+01\n",
      " 4.97700000e+01 4.82900000e+01 1.72200000e+01 4.16000000e+01\n",
      " 6.04500000e+01 4.47300000e+01 3.95100000e+01 1.17150000e+02\n",
      " 3.77400000e+01 1.44700000e+01 3.04600000e+01 2.99900000e+01\n",
      " 4.94200000e+01 1.03400000e+01 1.70500000e+01 1.48100000e+01\n",
      " 1.04510000e+02 2.83300000e+01 1.82700000e+01 1.14700000e+01\n",
      " 3.04400000e+01 9.65000000e+00 3.49100000e+01 2.67600000e+01\n",
      " 2.98800000e+01 1.62500000e+01 1.14500000e+01 3.26600000e+01\n",
      " 2.84300000e+01 1.77900000e+01 5.73100000e+01 4.47500000e+01\n",
      " 2.98400000e+01 1.67200000e+01 7.61950000e+02 3.52800000e+01\n",
      " 1.21400000e+01 5.38800000e+01 9.12100000e+01 1.03500000e+01\n",
      " 3.30100000e+01 9.50000000e+00 1.24600000e+01 3.57270000e+02\n",
      " 5.60000000e+01 7.51900000e+01 5.26400000e+01 2.32440000e+02\n",
      " 4.07300000e+01 2.67100000e+01 2.63300000e+01 2.00000000e+01\n",
      " 3.35900000e+01 1.76400000e+01 3.34700000e+01 2.59500000e+01\n",
      " 1.56900000e+01 2.08400000e+01 4.80100000e+01 1.70400000e+02\n",
      " 2.92300000e+01 1.02730000e+02 4.67300000e+01 1.34210000e+02\n",
      " 1.19000000e+01 7.36300000e+01 4.52200000e+01 1.63100000e+01\n",
      " 1.14500000e+01 3.21700000e+01 1.11890000e+02 3.16200000e+01\n",
      " 1.03400000e+01 2.45000000e+01 7.85100000e+01 1.12120000e+02\n",
      " 1.28100000e+01 1.85000000e+01 4.67300000e+01 3.10400000e+01\n",
      " 3.49100000e+01 3.80000000e+01 7.31500000e+01 1.19100000e+01\n",
      " 2.58900000e+01 2.81700000e+01 5.93270000e+02 1.39200000e+01\n",
      " 2.60000000e+01 1.36200000e+01 2.23500000e+01 1.43600000e+01\n",
      " 6.13800000e+01 9.22000000e+00 1.46000000e+01 5.96300000e+01\n",
      " 3.38800000e+01 5.60500000e+01 2.28800000e+01 2.42100000e+01\n",
      " 1.69200000e+01 1.89600000e+01 1.43600000e+01 6.33800000e+01\n",
      " 3.14200000e+01 4.76900000e+01 2.09400000e+01 5.38400000e+01\n",
      " 1.14210000e+02 1.92700000e+01 1.36800000e+01 9.86100000e+01\n",
      " 2.18500000e+01 5.39400000e+01 2.59600000e+01 1.94800000e+01\n",
      " 1.59300000e+01 1.04280000e+02 1.07900000e+01 1.88300000e+01\n",
      " 8.28700000e+01]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "score = model.score(X_test,Y_test)\n",
    " \n",
    "print(score)\n",
    " \n",
    "#对线性回归进行预测\n",
    " \n",
    "Y_pred = model.predict(X_test)\n",
    " \n",
    "print(Y_pred)\n",
    " \n",
    "plt.plot(range(len(Y_pred)),Y_pred,'b',label=\"predict\")\n",
    "#显示图像\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "id": "electronic-movie",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure()\n",
    "plt.plot(range(len(Y_pred)),Y_pred,'b',label=\"predict\")\n",
    "plt.plot(range(len(Y_pred)),Y_test,'r',label=\"test\")\n",
    "plt.legend(loc=\"upper right\") #显示图中的标签\n",
    "plt.xlabel(\"the number of sales\")\n",
    "plt.ylabel('value of sales')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "supposed-combination",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
